Robot Grip Detection Using Non-Contact Sensors

ABSTRACT

A method is provided that includes controlling a robotic gripping device to cause a plurality of digits of the robotic gripping device to move towards each other in an attempt to grasp an object. The method also includes receiving, from at least one non-contact sensor on the robotic gripping device, first sensor data indicative of a region between the plurality of digits of the robotic gripping device. The method further includes receiving, from the at least one non-contact sensor on the robotic gripping device, second sensor data indicative of the region between the plurality of digits of the robotic gripping device, where the second sensor data is based on a different sensing modality than the first sensor data. The method additionally includes determining, using an object-in-hand classifier that takes as input the first sensor data and the second sensor data, a result of the attempt to grasp the object.

CROSS-REFERENCE TO RELATED APPLICATION

This present application claims priority to U.S. patent application Ser.No. 15/839,109, filed on Dec. 12, 2017, the entire contents of which isherein incorporated by reference.

BACKGROUND

As technology advances, various types of robotic devices are beingcreated for performing a variety of functions that may assist users.Robotic devices may be used for applications involving materialhandling, transportation, welding, assembly, and dispensing, amongothers. Over time, the manner in which these robotic systems operate isbecoming more intelligent, efficient, and intuitive. As robotic systemsbecome increasingly prevalent in numerous aspects of modern life, it isdesirable for robotic systems to be efficient. Therefore, a demand forefficient robotic systems has helped open up a field of innovation inactuators, movement, sensing techniques, as well as component design andassembly.

Robotic devices, such as robotic legs and arms, may include variouscomponents or attachments that are designed to interact with theenvironment. Such components may include robotic feet and hands, whichmay include additional components that can be used to support,stabilize, grip, and otherwise allow a robotic device to effectivelycarry out one or more actions.

In particular, robotic arms may include one or more “end effectors” thatinteract with the environment. For example, end effectors may beimpactive (such as a claw), ingressive (such as a pin or needle),astrictive (such as a vacuum or suction element) or contigutive(requiring contact for adhesion, such as glue).

SUMMARY

The present application discloses implementations that relate tosensorizing a robotic gripping device with one or more non-contactsensors. Some example embodiments include a gripper with a plurality ofdigits attached to a palm that includes a time-of-flight sensor and aninfrared camera. Additional example embodiments involve using sensordata from one or more non-contact sensors to evaluate grasp success.More specifically, an object-in-hand classifier may be used that takesas input sensor data of multiple different sensing modalities in orderto determine a result of an attempt to grasp an object with a roboticgripper.

In one example, a robotic gripping device is disclosed that includes apalm and a plurality of digits coupled to the palm. The robotic grippingdevice further includes a time-of-flight sensor arranged on the palmsuch that the time-of-flight sensor is configured to generatetime-of-flight distance data in a direction between the plurality ofdigits. The robotic gripping device additionally includes an infraredcamera, comprising an infrared illumination source, where the infraredcamera is arranged on the palm such that the infrared camera isconfigured to generate grayscale image data in the direction between theplurality of digits.

In a further example, a robot is disclosed that includes a roboticgripping device. The robotic gripping device includes a palm and aplurality of digits coupled to the palm. The robotic gripping devicefurther includes a time-of-flight sensor arranged on the palm such thatthe time-of-flight sensor is configured to generate time-of-flightdistance data in a direction between the plurality of digits. Therobotic gripping device additionally includes an infrared camera,comprising an infrared illumination source, wherein the infrared camerais arranged on the palm such that the infrared camera is configured togenerate grayscale image data in the direction between the plurality ofdigits.

In an additional example, a method is disclosed that includes receivingtime-of-flight distance data in a direction between a plurality ofdigits of a robotic gripper from a time-of-flight sensor arranged on apalm of the robotic gripper, where the plurality of digits of therobotic gripper are coupled to the palm of the robotic gripper. Themethod further includes receiving grayscale image data in the directionbetween the plurality of digits of the robotic gripper from an infraredcamera arranged on the palm of the robotic gripper. The methodadditionally includes controlling the robotic gripper based on thetime-of-flight distance data and the grayscale image data.

In another example, a system is disclosed that includes means forreceiving time-of-flight distance data in a direction between aplurality of digits of a robotic gripper from a time-of-flight sensorarranged on a palm of the robotic gripper, where the plurality of digitsof the robotic gripper are coupled to the palm of the robotic gripper.The system further includes means for receiving grayscale image data inthe direction between the plurality of digits of the robotic gripperfrom an infrared camera arranged on the palm of the robotic gripper. Thesystem additionally includes means for controlling the robotic gripperbased on the time-of-flight distance data and the grayscale image data.

In a further example, a method is disclosed that include controlling arobotic gripping device to cause a plurality of digits of the roboticgripping device to move towards each other in an attempt to grasp anobject. The method further includes receiving, from at least onenon-contact sensor on the robotic gripping device, first sensor dataindicative of a region between the plurality of digits of the roboticgripping device. The method additionally includes receiving, from the atleast one non-contact sensor on the robotic gripping device, secondsensor data indicative of the region between the plurality of digits ofthe robotic gripping device, where the second sensor data is based on adifferent sensing modality than the first sensor data. The method alsoincludes determining, using an object-in-hand classifier that takes asinput the first sensor data and the second sensor data, a result of theattempt to grasp the object.

In an additional example, a robot is disclosed that includes a roboticgripping device and a control system. The robotic gripping deviceincludes a plurality of digits and at least one non-contact sensor. Thecontrol system is configured to control the robotic gripping device tocause the plurality of digits of the robotic gripping device to movetowards each other in an attempt to grasp an object. The control systemis further configured to receive, from the at least one non-contactsensor of the robotic gripping device, first sensor data indicative of aregion between the plurality of digits of the robotic gripping device.The control system is additionally configured to receive, from the atleast one non-contact sensor on the robotic gripping device, secondsensor data indicative of the region between the plurality of digits ofthe robotic gripping device, where the second sensor data is based on adifferent sensing modality than the first sensor data. The controlsystem is further configured to determine, using an object-in-handclassifier that takes as input the first sensor data and the secondsensor data, a result of the attempt to grasp the object.

In a further example, a non-transitory computer readable medium isdisclosed having stored therein instructions executable by one or moreprocessors to cause the one or more processors to perform functions. Thefunctions include controlling a robotic gripping device to cause aplurality of digits of the robotic gripping device to move towards eachother in an attempt to grasp an object. The functions further includereceiving, from at least one non-contact sensor on the robotic grippingdevice, first sensor data indicative of a region between the pluralityof digits of the robotic gripping device. The functions additionallyinclude receiving, from the at least one non-contact sensor on therobotic gripping device, second sensor data indicative of the regionbetween the plurality of digits of the robotic gripping device, wherethe second sensor data is based on a different sensing modality than thefirst sensor data. The functions also include determining, using anobject-in-hand classifier that takes as input the first sensor data andthe second sensor data, a result of the attempt to grasp the object.

In another example, a system is disclosed that includes means forcontrolling a robotic gripping device to cause a plurality of digits ofthe robotic gripping device to move towards each other in an attempt tograsp an object. The system further includes means for receiving, fromat least one non-contact sensor on the robotic gripping device, firstsensor data indicative of a region between the plurality of digits ofthe robotic gripping device. The system additionally includes means forreceiving, from the at least one non-contact sensor on the roboticgripping device, second sensor data indicative of the region between theplurality of digits of the robotic gripping device, where the secondsensor data is based on a different sensing modality than the firstsensor data. The system also includes means for determining, using anobject-in-hand classifier that takes as input the first sensor data andthe second sensor data, a result of the attempt to grasp the object.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the figures and the followingdetailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates a configuration of a robotic system, in accordancewith example embodiments.

FIG. 2 illustrates a robotic arm, in accordance with exampleembodiments.

FIG. 3 illustrates a robotic arm having an underactuated roboticgripper, in accordance with example embodiments.

FIG. 4 illustrates a mechanism for an underactuated robotic gripper, inaccordance with example embodiments.

FIG. 5 illustrates an underactuated robotic gripper, in accordance withexample embodiments.

FIG. 6 is a table that includes types of gripper sensors for differentmanipulation classes, in accordance with example embodiments.

FIG. 7 illustrates a sensing device for a robotic gripper, in accordancewith example embodiments.

FIG. 8 illustrates a robotic gripper with a sensing device on the palm,in accordance with example embodiments.

FIG. 9 is a block diagram of a method, in accordance with exampleembodiments.

FIG. 10 illustrates bus timing for a sensing device, in accordance withexample embodiments.

FIG. 11 illustrates fields of view for time-of-flight sensors on arobotic gripper, in accordance with example embodiments.

FIG. 12 illustrates long-range time-of-flight sensor data, in accordancewith example embodiments.

FIG. 13 illustrates short-range time-of-flight sensor data, inaccordance with example embodiments.

FIG. 14 illustrates camera image data, in accordance with exampleembodiments.

FIG. 15 is a block diagram of another method, in accordance with exampleembodiments.

FIG. 16 is a block diagram illustrating application of an object-in-handclassifier, in accordance with example embodiments.

FIG. 17 illustrates a linear kernel support vector machine (SVM), inaccordance with example embodiments.

DETAILED DESCRIPTION

The following detailed description describes various features andfunctions of the disclosed devices, systems, and methods with referenceto the accompanying figures. The illustrative device, system, and methodembodiments described herein are not meant to be limiting. It should beunderstood that the words “exemplary,” “example,” and “illustrative,”are used herein to mean “serving as an example, instance, orillustration.” Any implementation, embodiment, or feature describedherein as “exemplary,” “example,” or “illustrative,” is not necessarilyto be construed as preferred or advantageous over other implementations,embodiments, or features. Further, the implementations and embodimentsdescribed herein are not meant to be limiting. It will be readilyunderstood that certain aspects of the disclosed devices, systems, andmethods can be arranged and combined in a wide variety of differentconfigurations, all of which are contemplated herein. Additionally, thefollowing detailed description describes various features and functionsof the disclosure with reference to the accompanying Figures. In theFigures, similar symbols typically identify similar components, unlesscontext dictates otherwise.

I. OVERVIEW

Robotic end effectors may be used in many situations to allow a roboticdevice to interact with an environment by pushing, pulling, grasping,holding, or otherwise interacting with one or more objects in theenvironment. For instance, a robotic device may include a roboticgripper having one or more digits that can be actuated to change theirshape, thereby allowing the robotic gripper to interact with theenvironment.

In the field of robotics, and robotic grippers in particular, thecontrol system of a robotic device may operate more effectively whenprovided with information regarding the environment in the areasurrounding each component of the robotic device. To provide thisinformation, different types of sensors may be placed on or included inone or more components. However, increasing the number of sensors alsomeans increasing the complexity of the system, as well as increasing thenumber of possible points of failure.

Some robots may include one or more sensors remote from a gripper thatmay be used by a control system to help control the gripper. Forexample, a head-mounted camera may provide data about a gripper locatedat the end of a robotic arm. However, certain tasks may be difficult toperform with only data from a remote sensor. Such tasks may includecontrolling the approach path of a gripper towards an object, verifyingthat an object has been successfully grasped, and detecting when theobject slips within the gripper after the object has been grasped.Accordingly, it may be advantageous to position one or more sensors onor proximate to a robotic gripper or other end effector of a robot.

In some examples, one or more force-based or tactile contact sensors maybe placed in a robotic gripper. More specifically, such sensors may beplaced within the digits to detect when an object has been grasped andpossibly to evaluate the quality of such a grasp. However, force-basedsolutions may not be reliable, especially when the gripper includesunderactuated digits. An underactuated digit has less control inputsthan degrees of freedom. For instance, an underactuated digit mayinclude one or more unactuated joints that are not separately actuatableby a control system. One benefit of underactuated digits is that theymay require less complex control systems and may be simpler tomanufacture than fully actuated digits. However, it may be difficult fora control system to evaluate grasp success or grasp quality for agripper with underactuated digits. As an example, it may be difficult todetermine whether two underactuated robot digits have successfullygrasped a piece of paper or a plastic cup. In such cases, the digits maybe positioned close together and applying the same amount of forcewhether or not a grasp is successful.

Additionally, in some examples, it may be desirable to have robot digitsthat are easily replaceable or even interchangeable. In such systems,including sensors or other electronics within the digits may bedisadvantageous.

In some examples, one or more non-contact sensors may be placed withinthe palm of a robotic gripping device, such as an underactuated gripperwith two opposable digits. By placing such sensors on the palm anddirecting them toward an area between the digits, more accurate sensordata of the area between the digits may be obtained than by using remotesensors. Additionally, by using non-contact sensors on the palm,disadvantages associated with using contact sensors in the digits may beavoided.

In some examples, a non-contact sensor or combination of non-contactsensors on the palm may be used to produce sensor data with multipledifferent sensing modalities. A sensing modality refers to a form ofsensory perception that produces a particular form of sensor data. Insome examples, a single sensor may be capable of generating sensor dataof multiple different modalities. In further examples, multiple sensorsmay be positioned on the palm of a gripper, with each sensor capable ofgenerating sensor data of one or more distinct modalities.

When considering the placement of one or more non-contact sensors on thepalm of a gripper, care must be taken to maximize the benefit of thesensors across a range of applications while minimizing the costsassociated with sensorizing the gripper. In some examples, such sensorsmay be evaluated for their ability to assist a control system incontrolling a gripper through several distinct gripping phases,including object approach, verifying grasp success, and slip failuredetection.

In some examples, the palm of a gripper may be provided with atime-of-flight sensor and an infrared camera. Such a combination mayprovide good fidelity across a range of gripping applications while alsoproviding sufficient compactness to fit within the palm. Additionally,the combination may also provide low compute requirements with minimalrequired post-processing of sensor data. More specifically, the lowcost, small size, low power draw, and relatively low data raterequirements of a time-of-flight sensor and an infrared camera togetherare advantages over other sensing modalities such as three-dimensionaltime-of-flight cameras, light detection and ranging (LIDAR) sensors, orstructured light sensors.

The time-of-flight sensor may be configured to measure distance of anobject from the palm of the gripper independent of the object'sreflectance. In particular, rather than measuring an amount of lightreflected back from the object (which depends on the object's color andsurface type), time-of-flight distance data can instead be obtained bymeasuring the time it takes light to travel to the nearest object andreflect back to the sensor. The time-of-flight sensor may include aseparate light emitter and detector in order to measure distance to anobject. As an example, the time-of-flight sensor may have a roughly 35degree field of view extending out from the palm of the gripper up to arange of about half a meter.

In further examples, the time-of-flight sensor may also be used togenerate a separate reflectance measurement indicative of thereflectance of a detected object. The reflectance may be measured as areturn signal rate detected during the range measurement. Thereflectance measurement generated by a time-of-flight sensor may beconsidered a separate modality from the time-of-flight distance data.When a gripper is holding an object, the object may yield asignificantly different reflectance value than when the gripper is notholding an object.

As noted, the palm of a gripper may include the combination of both atime-of-flight sensor and an infrared camera. The infrared camera may beconfigured to provide relatively high-rate, low-resolution grayscaleimagery. The camera may also have built-in illumination with an infraredillumination source. External illumination allows for acquisition ofreliable image data in dark environments so that the robot gripper cansense dark corners, backs of shelves, etc. By using infrared lighting,the camera may allow for unobtrusive “flash-lighting,” where the lightis not human perceivable, but the light is perceived by the infraredcamera in the robot gripper. In some examples, the camera may be a microinfrared camera of a type typically used for gaze tracking in cellphones. As a specific example, the microcamera may be configured togenerate 60×60 grayscale images. Additionally, the infrared microcameraand a time-of-flight sensor may be small enough to both fit on the palmof a robot gripper.

In further examples, the palm of a gripper may be equipped with multipletime-of-flight sensors, with or without an infrared camera. Forinstance, first and second time-of-flight sensors may be placed oneither side of an infrared camera on the palm of the gripper. Eachtime-of-flight sensor may have a different sensing range. For instance,a first short-range time-of-flight sensor may be used to detect objectsin a range of 0-10 centimeters, and a second long-range time-of-flightsensor may be used to detect objects in a range of 10-200 centimeters.The short-range time-of-flight sensor may be more effective when thegripper is closed, while the long-range time-of-flight sensor may bemore effective during approach when the gripper is open. In someexamples, a control system may explicitly switch between using data fromthe short-range time-of-flight sensor or the long-range time-of-flightsensor depending on the gripper state. The combination of a short-rangetime-of-flight sensor and a long-range time-of-flight sensor may be usedto provide a maximal amount of information increase while minimizinghardware and/or software overhead. In further examples, angularinformation may also be obtained based on the placement of thetime-of-flight sensors on the palm.

In additional examples, an infrared camera may have a sensing rangewhich extends past the range of the short-range time-of-flight sensor,but not as far as the long-range time-of-flight sensor. For instance,the camera may have a range of approximately 60 centimeters. The cameramay therefore be most effective for detecting objects near the tips ofthe digits.

One or more non-contact sensors may be included on a printed circuitboard (PCB), which is attached to the palm of the gripper. For instance,in one example, each of a micro infrared camera, a short-rangetime-of-flight sensor, and a long-range time-of-flight sensor may beattached to the PCB. In some examples, the PCB may interface with aseparate sensor board that services a force/torque cell for a roboticwrist that is coupled to the palm of the gripper. In further examples,the PCB may additionally include an inertial measurement unit (IMU),which may be placed on the back of the PCB. The IMU may be a low-costcomponent that is easy to integrate into the hardware and nearly free interms of offering additional information about the gripper.

Within examples, sensor data of multiple different modalities may beused as inputs to an object-in-hand classifier that outputs whether ornot a robot gripper is holding an object. An object-in-hand classifieris an algorithm or function that maps inputted sensor data to categoriescorresponding to different grasp states. The classifier may be used todetermine if the gripper was successful in grasping an object. By usingmultiple modalities of sensor data, the classifier may achieve a higheraccuracy rate than by using a single modality. For instance, certaincases may be likely to trick one sensor type or another (e.g., it may bedifficult for a camera to differentiate between closed digits versus anobject held by the digits). Using multiple modalities may help theobject-in-hand classifier resolve such cases. Multimodal sensor data maybe obtained from at least one non-contact sensor on the palm of thegripper. Example modalities that may be used as inputs to anobject-in-hand classifier include infrared image data, time-of-flightdistance data, and time-of-flight reflectance data. An object-in-handclassifier may be particularly beneficial when using underactuatedgrippers where complete information about digit position is not readilyavailable.

In further examples, the object-in-hand classifier may be a machinelearning model trained based on results from the robotic gripping deviceused by the robot and/or similar robotic gripping devices used by therobot or different robots. The machine learning model may also betrained by simulated grasping events using a digital representation ofthe gripper in software. In some examples, the machine learning modelmay be a support vector machine (SVM). For instance, the SVM may take asinput a grayscale image from an infrared camera, a time-of-flightdistance measurement, and a time-of-flight reflectance measurement. TheSVM may then output whether or not an attempted grasp of an object wassuccessful. As another example, the SVM may take as input only distanceand reflectance measurements from a single short-range time-of-flightsensor on the palm. In further examples, additional and/or other typesof data, including non-contact-based and/or contact-based modalities maybe used as input. Other types of machine learning models may be usedinstead of an SVM as well, such as a neural network. In furtherexamples, a heuristics-based object-in-hand classifier may be usedinstead of a machine learning model.

Sensor data from one or more non-contact sensors on the palm of a robotgripper may also be used for other applications besides grasp failuredetection. Such applications may involve heuristics-based approachesand/or machine learning models. In some examples, multimodal sensor datamay be used in order to control the approach of a gripper towards anobject to be grasped. In particular, the sensor data may be used tocenter the gripper on an object to grasp during a visual servoingprocess. The sensor data may also be used to determine an appropriatestopping distance to avoid knocking over an object. In further examples,the sensor data may also be used after a successful grasp for slipdetection. Other applications of multimodal non-contact sensor data froma sensorized gripper are also contemplated.

II. EXAMPLE ROBOTIC SYSTEMS

FIG. 1 illustrates an example configuration of a robotic system that maybe used in connection with the implementations described herein. Therobotic system 100 may be configured to operate autonomously,semi-autonomously, and/or using directions provided by user(s). Therobotic system 100 may be implemented in various forms, such as arobotic arm, industrial robot, or some other arrangement. Furthermore,the robotic system 100 may also be referred to as a robot, roboticdevice, or mobile robot, among other designations.

As shown in FIG. 1, the robotic system 100 may include processor(s) 102,data storage 104, and controller(s) 108, which together may be part of acontrol system 118. The robotic system 100 may also include sensor(s)112, power source(s) 114, mechanical components 110, and electricalcomponents 116. Nonetheless, the robotic system 100 is shown forillustrative purposes, and may include more or fewer components. Thevarious components of robotic system 100 may be connected in any manner,including wired or wireless connections. Further, in some examples,components of the robotic system 100 may be distributed among multiplephysical entities rather than a single physical entity. Other exampleillustrations of robotic system 100 may exist as well.

Processor(s) 102 may operate as one or more general-purpose hardwareprocessors or special purpose hardware processors (e.g., digital signalprocessors, application specific integrated circuits, etc.). Theprocessor(s) 102 may be configured to execute computer-readable programinstructions 106, and manipulate data 107, both of which are stored inthe data storage 104. The processor(s) 102 may also directly orindirectly interact with other components of the robotic system 100,such as sensor(s) 112, power source(s) 114, mechanical components 110,and/or electrical components 116.

The data storage 104 may be one or more types of hardware memory. Forexample, the data storage 104 may include or take the form of one ormore computer-readable storage media that can be read or accessed byprocessor(s) 102. The one or more computer-readable storage media caninclude volatile and/or non-volatile storage components, such asoptical, magnetic, organic, or another type of memory or storage, whichcan be integrated in whole or in part with processor(s) 102. In someimplementations, the data storage 104 can be a single physical device.In other implementations, the data storage 104 can be implemented usingtwo or more physical devices, which may communicate with one another viawired or wireless communication. As noted previously, the data storage104 may include the computer-readable program instructions 106 and thedata 107. The data 107 may be any type of data, such as configurationdata, sensor data, and/or diagnostic data, among other possibilities.

The controller 108 may include one or more electrical circuits, units ofdigital logic, computer chips, and/or microprocessors that areconfigured to (perhaps among other tasks), interface between anycombination of the mechanical components 110, the sensor(s) 112, thepower source(s) 114, the electrical components 116, the control system118, and/or a user of the robotic system 100. In some implementations,the controller 108 may be a purpose-built embedded device for performingspecific operations with one or more subsystems of the robotic device100.

The control system 118 may monitor and physically change the operatingconditions of the robotic system 100. In doing so, the control system118 may serve as a link between portions of the robotic system 100, suchas between mechanical components 110 and/or electrical components 116.In some instances, the control system 118 may serve as an interfacebetween the robotic system 100 and another computing device. Further,the control system 118 may serve as an interface between the roboticsystem 100 and a user. In some instances, the control system 118 mayinclude various components for communicating with the robotic system100, including a joystick, buttons, and/or ports, etc. The exampleinterfaces and communications noted above may be implemented via a wiredor wireless connection, or both. The control system 118 may performother operations for the robotic system 100 as well.

During operation, the control system 118 may communicate with othersystems of the robotic system 100 via wired or wireless connections, andmay further be configured to communicate with one or more users of therobot. As one possible illustration, the control system 118 may receivean input (e.g., from a user or from another robot) indicating aninstruction to perform a particular gait in a particular direction, andat a particular speed. A gait is a pattern of movement of the limbs ofan animal, robot, or other mechanical structure.

Based on this input, the control system 118 may perform operations tocause the robotic device 100 to move according to the requested gait. Asanother illustration, a control system may receive an input indicatingan instruction to move to a particular geographical location. Inresponse, the control system 118 (perhaps with the assistance of othercomponents or systems) may determine a direction, speed, and/or gaitbased on the environment through which the robotic system 100 is movingen route to the geographical location.

Operations of the control system 118 may be carried out by theprocessor(s) 102. Alternatively, these operations may be carried out bythe controller 108, or a combination of the processor(s) 102 and thecontroller 108. In some implementations, the control system 118 maypartially or wholly reside on a device other than the robotic system100, and therefore may at least in part control the robotic system 100remotely.

Mechanical components 110 represent hardware of the robotic system 100that may enable the robotic system 100 to perform physical operations.As a few examples, the robotic system 100 may include physical memberssuch as leg(s), arm(s), wheel(s), hand(s), digit(s), feet, and/or endeffectors. The physical members or other parts of robotic system 100 mayfurther include actuators arranged to move the physical members inrelation to one another. The robotic system 100 may also include one ormore structured bodies for housing the control system 118 and/or othercomponents, and may further include other types of mechanicalcomponents. The particular mechanical components 110 used in a givenrobot may vary based on the design of the robot, and may also be basedon the operations and/or tasks the robot may be configured to perform.

In some examples, the mechanical components 110 may include one or moreremovable components. The robotic system 100 may be configured to addand/or remove such removable components, which may involve assistancefrom a user and/or another robot. For example, the robotic system 100may be configured with removable digits, arms, hands, feet, and/or legs,so that these appendages can be replaced or changed as needed ordesired. In some implementations, the robotic system 100 may include oneor more removable and/or replaceable battery units or sensors. Othertypes of removable components may be included within someimplementations.

The robotic system 100 may include sensor(s) 112 arranged to senseaspects of the robotic system 100. The sensor(s) 112 may include one ormore force sensors, torque sensors, velocity sensors, accelerationsensors, position sensors, proximity sensors, motion sensors, locationsensors, load sensors, temperature sensors, touch sensors, depthsensors, ultrasonic range sensors, infrared sensors, object sensors,and/or cameras, among other possibilities. Within some examples, therobotic system 100 may be configured to receive sensor data from sensorsthat are physically separated from the robot (e.g., sensors that arepositioned on other robots or located within the environment in whichthe robot is operating).

The sensor(s) 112 may provide sensor data to the processor(s) 102(perhaps by way of data 107) to allow for interaction of the roboticsystem 100 with its environment, as well as monitoring of the operationof the robotic system 100. The sensor data may be used in evaluation ofvarious factors for activation, movement, and deactivation of mechanicalcomponents 110 and electrical components 116 by control system 118. Forexample, the sensor(s) 112 may capture data corresponding to the terrainof the environment or location of nearby objects, which may assist withenvironment recognition and navigation. In an example configuration,sensor(s) 112 may include RADAR (e.g., for long-range object detection,distance determination, and/or speed determination), LIDAR (e.g., forshort-range object detection, distance determination, and/or speeddetermination), SONAR (e.g., for underwater object detection, distancedetermination, and/or speed determination), VICON® (e.g., for motioncapture), one or more cameras (e.g., stereoscopic cameras for 3Dvision), a global positioning system (GPS) transceiver, and/or othersensors for capturing information of the environment in which therobotic system 100 is operating. The sensor(s) 112 may monitor theenvironment in real time, and detect obstacles, elements of the terrain,weather conditions, temperature, and/or other aspects of theenvironment. In another example, sensor(s) 112 may capture datacorresponding to one or more characteristics of a target or identifiedobject, such as a size, shape, profile, structure, or orientation of theobject.

Further, the robotic system 100 may include sensor(s) 112 configured toreceive information indicative of the state of the robotic system 100,including sensor(s) 112 that may monitor the state of the variouscomponents of the robotic system 100. The sensor(s) 112 may measureactivity of systems of the robotic system 100 and receive informationbased on the operation of the various features of the robotic system100, such as the operation of extendable legs, arms, or other mechanicaland/or electrical features of the robotic system 100. The data providedby the sensor(s) 112 may enable the control system 118 to determineerrors in operation as well as monitor overall operation of componentsof the robotic system 100.

As an example, the robotic system 100 may use force sensors to measureload on various components of the robotic system 100. In someimplementations, the robotic system 100 may include one or more forcesensors on an arm, leg, hand, foot, or digit to measure the load on theactuators that move one or more members of the arm, leg, hand, foot, ordigit. As another example, the robotic system 100 may use one or moreposition sensors to sense the position of the actuators of the roboticsystem. For instance, such position sensors may sense states ofextension, retraction, positioning, or rotation of the actuators onarms, legs, hands, feet, digits, or end effectors.

As another example, the sensor(s) 112 may include one or more velocityand/or acceleration sensors. For instance, the sensor(s) 112 may includean inertial measurement unit (IMU). The IMU may sense velocity andacceleration in the world frame, with respect to the gravity vector. Thevelocity and acceleration sensed by the IMU may then be translated tothat of the robotic system 100 based on the location of the IMU in therobotic system 100 and the kinematics of the robotic system 100.

The robotic system 100 may include other types of sensors not explicitlydiscussed herein. Additionally or alternatively, the robotic system mayuse particular sensors for purposes not enumerated herein.

The robotic system 100 may also include one or more power source(s) 114configured to supply power to various components of the robotic system100. Among other possible power systems, the robotic system 100 mayinclude a hydraulic system, electrical system, batteries, and/or othertypes of power systems. As an example illustration, the robotic system100 may include one or more batteries configured to provide charge tocomponents of the robotic system 100. Some of the mechanical components110 and/or electrical components 116 may each connect to a differentpower source, may be powered by the same power source, or be powered bymultiple power sources.

Any type of power source may be used to power the robotic system 100,such as electrical power or a gasoline engine. Additionally oralternatively, the robotic system 100 may include a hydraulic systemconfigured to provide power to the mechanical components 110 using fluidpower. Components of the robotic system 100 may operate based onhydraulic fluid being transmitted throughout the hydraulic system tovarious hydraulic motors and hydraulic cylinders, for example. Thehydraulic system may transfer hydraulic power by way of pressurizedhydraulic fluid through tubes, flexible hoses, or other links betweencomponents of the robotic system 100. The power source(s) 114 may chargeusing various types of charging, such as wired connections to an outsidepower source, wireless charging, combustion, or other examples.

The electrical components 116 may include various mechanisms capable ofprocessing, transferring, and/or providing electrical charge or electricsignals. Among possible examples, the electrical components 116 mayinclude electrical wires, circuitry, and/or wireless communicationtransmitters and receivers to enable operations of the robotic system100. The electrical components 116 may interwork with the mechanicalcomponents 110 to enable the robotic system 100 to perform variousoperations. The electrical components 116 may be configured to providepower from the power source(s) 114 to the various mechanical components110, for example. Further, the robotic system 100 may include electricmotors. Other examples of electrical components 116 may exist as well.

Although not shown in FIG. 1, the robotic system 100 may include a body,which may connect to or house appendages and components of the roboticsystem. As such, the structure of the body may vary within examples andmay further depend on particular operations that a given robot may havebeen designed to perform. For example, a robot developed to carry heavyloads may have a wide body that enables placement of the load.Similarly, a robot designed to reach high speeds may have a narrow,small body that does not have substantial weight. Further, the bodyand/or the other components may be developed using various types ofmaterials, such as metals or plastics. Within other examples, a robotmay have a body with a different structure or made of various types ofmaterials.

The body and/or the other components may include or carry the sensor(s)112. These sensors may be positioned in various locations on the roboticdevice 100, such as on the body and/or on one or more of the appendages,among other examples.

On its body, the robotic device 100 may carry a load, such as a type ofcargo that is to be transported. The load may also represent externalbatteries or other types of power sources (e.g., solar panels) that therobotic device 100 may utilize. Carrying the load represents one exampleuse for which the robotic device 100 may be configured, but the roboticdevice 100 may be configured to perform other operations as well.

As noted above, the robotic system 100 may include various types oflegs, arms, wheels, end effectors, gripping devices and so on. Ingeneral, the robotic system 100 may be configured with zero or morelegs. An implementation of the robotic system with zero legs may includewheels, treads, or some other form of locomotion. An implementation ofthe robotic system with two legs may be referred to as a biped, and animplementation with four legs may be referred as a quadruped.Implementations with six or eight legs are also possible. For purposesof illustration, robotic arm implementations of the robotic system 100are described below.

FIG. 2 shows an example robotic arm 200. As shown, the robotic arm 200includes a base 202, which may be a stationary base or may be a movablebase. In the case of a movable base, the base 202 may be considered asone of the mechanical components 110 and may include wheels (not shown),powered by one or more of actuators, which allow for mobility of theentire robotic arm 200.

Additionally, the robotic arm 200 includes joints 204A-204F each coupledto one or more actuators. The actuators in joints 204A-204F may operateto cause movement of various mechanical components 110 such asappendages 206A-206F and/or end effector 208. For example, the actuatorin joint 204F may cause movement of appendage 206F and end effector 208(i.e., since end effector 208 is coupled to appendage 206F). Further,end effector 208 may take on various forms and may include variousparts. In one example, end effector 208 may take the form of a grippersuch as a digit gripper as shown here or a different type of grippersuch as a suction gripper. In another example, end effector 208 may takethe form of a tool such as a drill or a brush. In yet another example,the end effector may include sensors such as force sensors, locationsensors, and/or proximity sensors. Other examples may also be possible.

In an example implementation, a robotic system 100, such as robotic arm200, may be capable of operating in a teach mode. In particular, teachmode may be an operating mode of the robotic arm 200 that allows a userto physically interact with and guide the robotic arm 200 towardscarrying out and recording various movements. In a teaching mode, anexternal force is applied (e.g., by the user) to the robotic system 100based on a teaching input that is intended to teach the robotic systemregarding how to carry out a specific task. The robotic arm 200 may thusobtain data regarding how to carry out the specific task based oninstructions and guidance from the user. Such data may relate to aplurality of configurations of the mechanical components 110, jointposition data, velocity data, acceleration data, torque data, forcedata, and power data, among other possibilities.

For example, during teach mode the user may grasp onto any part of therobotic arm 200 and provide an external force by physically moving therobotic arm 200. In particular, the user may guide the robotic arm 200towards grasping onto an object and then moving the object from a firstlocation to a second location. As the user guides the robotic arm 200during teach mode, the system may obtain and record data related to themovement such that the robotic arm 200 may be configured toindependently carry out the task at a future time during independentoperation (e.g., when the robotic arm 200 operates independently outsideof teach mode). Note, however, that external forces may also be appliedby other entities in the physical workspace such as by other objects,machines, and/or robotic systems, among other possibilities.

FIG. 3 shows the example robotic arm 200 with an underactuated roboticgripping device 308. Robotic gripping device 308 may be similar oridentical to any of the underactuated robotic gripping devices describedin more detail below.

III. EXAMPLE UNDERACTUATED ROBOTIC GRIPPING DEVICE

As noted above, the present disclosure includes implementations thatrelate to robotic gripping devices and/or end effectors. FIG. 4illustrates a mechanism for an underactuated robotic gripper that may beused in accordance with example embodiments described herein. In FIG. 4,assembly 400 may include an actuator having a motor 410 and a shaft 420.Shaft 420 may be coupled to a worm 430. Worm 430 may be coupled to wormgear 440. And in turn, worm gear 440 may be coupled to a robotic digit(not shown) such that rotation of the worm gear 440 moves the roboticdigit. In addition, assembly 400 may include a spring 450 that iscoupled to motor 410 on a first end, and is fixed on a second end.

In one example, motor 410 may be actuated, and may cause shaft 420 torotate in a clockwise direction. Shaft 420 may in turn cause worm 430 torotate in a clockwise direction as well. And further, worm 430 may causeworm gear 440 to rotate, causing a robotic digit to move. Worm 430 maybe able to drive worm gear 440 in either direction. However worm gear440 may not be able to drive worm 430. As such, this orientation may notbe back-drivable, and in the case where the motor is turned off ordisengaged, shaft 420, worm 430 and worm gear 440 may remain stationaryor relatively stationary. In this state, a torque may act upon worm gear440 (i.e., a force acting upon a digit coupled to worm gear 440). Thatforce may attempt to rotate the worm gear to back-drive the worm,however because the worm is not back-drivable, the entire subassemblywill slide, compressing the spring. In this manner, forces or torquesacting upon the digit coupled to the worm gear may pass through theassembly and cause the spring to compress or expand.

FIG. 5 illustrates an example underactuated robotic gripping device,including components arranged to carry out the operation of themechanism discussed with reference to FIG. 4. Robotic gripping device500 may be implemented as a mechanical component of system 100 and/orrobotic arm 200. Although the components illustrated in FIG. 5 are shownwith a certain orientation and/or design, it should be understood thatone or more components of robotic gripping device 500 may be removed,added, and/or modified while remaining within the scope of thisdisclosure. Also, the orientation and combination of components may bechanged based on the desired implementation.

Robotic gripping device 500 may include one or more physical components,including one or more digits 502A-B, actuators 504, and/or springs 506.In some examples, robotic gripping device 500 may include two opposabledigits, as shown in FIG. 5. In other examples, more or fewer digits maybe included. Where three or more digits are included, the digits may bearranged in two groups opposing each other, such that when they areactuated they close toward each other. Two digits may be positionedopposite the third, such that when the digits close they interlock. Inother examples, the digits may be positioned or spaced evenly around apalm or base section. Other arrangements are possible as well.

Each digit 502A-B may be configured to move in a gripping direction, tocontact, grasp, hold, grip, or otherwise interact with an object. Inthis disclosure, movement of the digit(s) may refer to rotation aboutone or more axes. For example, the base of each digit may be rotatablycoupled along a respective axis to one or more other components of therobotic gripping device, and movement of each digit may include rotationof the digits about the respective axes. In some example the axis ofrotation of a digit may be the axis about which a worm gear coupled tothe digit rotates.

In other examples, movement of the digits may include translationalmovement along an axis, such as movement in a clamping or slidingmanner. The digits may be coupled to one or more components of therobotic gripping device in a manner that allows them to maintain theirorientation with respect to the gripping device (i.e., withoutrotating). For instance, a digit may move in a manner similar to how thecomponents of a vice move, such that the plane created by the grippingsurface of a digit remains fixed relative to the gripping device whilemovement of the digits occurs. Or, the movement may be a combination ofrotation and translation. Other types of movement are contemplated, withthe above examples being included for description and to aid inunderstanding of the concepts involved herein.

The gripping surface of the digits may be flexible and/or deformable,and may be a flexible plastic, rubber, or other material suitable forgripping an object. As a result, movement of a digit may includedeformation of the gripping surface and/or structure of the digit. Forexample, the digit may deform, bend, curve, distort, warp, stretch, orotherwise alter its shape based on one or more factors, such as animpacting force or pressure. In an example embodiment, a two digitrobotic gripping device such as the one shown in FIG. 5 may include anobject placed at the midpoint of the digits. When the digits close onthe object, the object may cause the tips of the digits to bend or curlaround the object. As described herein, movement of the digits mayinclude this deformation of the digits.

In some examples, the digits may be underactuated. Underactuated digitsdo not include an actuator for each joint of the digit, but instead havefewer actuators and cannot control each joint independently. One benefitof underactuated digits is that they can require less complex controlsystems and can be simpler to manufacture than fully actuated digits. Inreference to FIG. 5, joints 552A-B and 554A-B may be underactuatedjoints that may not be independently actuated by separate actuators.

In some examples, a deformable gripping surface of an underactuateddigit may be a single or unitary component. In other examples, adeformable gripping surface may include a plurality of members coupledtogether end-to-end to create an elongated gripping surface. Theplurality of members may be rotatably coupled together by unactuatedjoints, such as pin joints, rolling joints, or circular joints, forexample. Further, a deformable gripping surface may be configured to begenerally straight under normal circumstances, such as when no pressureor force is applied to the surface and the digit is in a normaloperating state. In other examples, a deformable gripping surface may beconfigured to have a bend or curve under normal circumstances (i.e., abiased shape), such that when no pressure or force is applied to thegripping surface it is curved or bent nonetheless.

In some examples, a deformable gripping surface may run the entirelength of the digit between the digittip and the base of the digit. Inother examples, a deformable gripping surface may be included on only aportion of an inner surface of the digit, such that only a portion ofthe digit includes the deformable gripping surface.

For purposes of explanation, the components of FIG. 5 will be describedwith respect to a single digit. However, multiple digits, actuators,springs, and gears may be included in a robotic gripping device inaccordance with examples described herein.

In FIG. 5, digit 502A may be coupled to a worm gear 522. In someexamples, worm gear 522 may be connected directly to a bottom end ofdigit 502A. In other examples, worm gear 522 may be coupled to digit502A through one or more other gears and/or components, and may becoupled to a section other the digit other than the bottom end. As usedherein, a first component “coupled” to a second component means that thetwo components may be directly connected to each other, or may have oneor more components, gears, shafts, or connecting elements placed betweenthem. As shown in FIG. 5, worm gear 522 is directly connected to digit502A.

Worm gear 522 may be a circular worm gear or worm wheel, having teethfacing outward surrounding an inner wheel. In some examples, the shapeof worm gear 522 may be a partial circle, such as the worm gear shown inFIG. 5. Further, the shape of worm gear 522 may be either symmetric orasymmetric, full or partial, and may be a circle or any other shape.Worm gear 522 may be coupled to digit 502A such that rotation of wormgear 522 causes digit 502A to move and/or rotate. And further, worm gear522 may be coupled such that rotation and/or movement of digit 502Acauses the worm gear to rotate (i.e., worm gear 522 and digit 502A candrive each other). In some examples, the teeth of worm gear 522 may becurved and/or angled to provide a smoother coupling to worm 520. Thismay result in smoother operation of the robotic gripping device.

Robotic gripping device 500 may also include an actuator 504. Actuator504 may include a motor 514 and a shaft 512. When the actuator is turnedon, engaged, or otherwise activated, motor 514 may rotate shaft 512 in aclockwise or counterclockwise direction. Shaft 512 may be coupled toworm 520, and may be configured to cause worm 520 to rotate. Worm 520may be a cylindrical gear, with teeth similar to the threads on a screwor bolt. Worm 520 may also be called a ‘worm screw.’ Worm 520 may becoupled to worm gear 522 such that the axis of rotation of worm 520 isperpendicular to the axis of rotation of worm gear 522.

Worm 520 and worm gear 522 may have a high reduction ratio. Where thereis a high reduction ratio, one full rotation of worm 520 may correspondto 1/32 of a full rotation (or some other small amount) of worm gear522. The reduction ratio may depend on the number and spacing of theteeth of worm gear 522 and worm 520. A characteristic of the highreduction ratio is that the worm is not back-drivable. As such, a forcerotating worm 520 may cause worm gear 522 to responsively rotate, but aforce rotating the worm gear 522 may not cause the worm 520 toresponsively rotate.

In some examples, actuator 504 may be mounted on a carriage 530 suchthat the actuator 504 and carriage 530 are configured to slide togetheralong an axis. One or more components of actuator 504 may be glued,screwed, or otherwise affixed to carriage 530. Carriage 530 in turn maybe coupled to a base section via a sliding coupling or other lowfriction coupling. As such, carriage 530 may be free to slide along oneaxis. Carriage 530 may be any component that allows actuator 504 toslide along the axis. As such, carriage 530 may be any shape ordimension that couples to actuator 504 to allow the actuator to slidealong the axis, and may be a plastic, metal, composite, or othermaterial.

Robotic gripping device 500 may also include a spring 506. Spring 506may have two ends, with a first end coupled to actuator 504 and a secondend fixed. In FIG. 5, the second end of spring 506 is fixed to the baseof robotic gripping device 500. Spring 506 may be fixed to anothercomponent of robotic gripping device 500 as well. In some example,spring 506 may be configured such that the first end moves when carriage530 and actuator 504 slide. When actuator 504 and carriage 530 are in afirst position, spring 506 may be at equilibrium. Equilibrium means thatthe forces acting on the spring are balanced, such that an added forceis required to compress or expand the spring. Then when actuator 504slides to a second position (due to one or more forces or torques actingon the robotic gripping device), spring 506 may be compressed orexpanded such that spring 506 is no longer at equilibrium. In thisstate, spring 506 may impart a responsive force on actuator 504 in anattempt to return to the first position at which the spring is atequilibrium.

In some examples, the spring may surround the actuator, such as spring506 shown in FIG. 5. More or less of actuator 504 may be surrounded byspring 506 than shown in FIG. 5. Arranging spring 506 around actuator504 results in a more compact design, allowing a robotic gripping deviceto be smaller and thus appropriate for more uses and applications. Inother examples, two or more springs may be used, and the spring(s) maybe positioned to the side or otherwise not surrounding the actuator.

Spring 506 may have one or more characteristics, such as size, firmness,spring constant, and/or material. Each of these characteristics may bealtered based on the particular application of the robotic grippingdevice. For example, a spring with a higher spring constant may requiremore force to compress or expand, which may be used to determine theappropriate spring to use for a particular application.

In some examples, the robotic gripping device may also include one ormore encoders, sensors, or detectors configured to detect the rotation,position, movement, and/or forces acting on one or more parts of therobotic gripping device. For example, robotic gripping device 500 mayinclude actuator encoder 524, which may be positioned on or coupled tothe base of robotic gripping device 500. Actuator encoder 524 may beconfigured to detect the rotation of shaft 512, and may provideinformation about the extent or amount of rotation to a control system.Actuator encoder 524 may also be positioned on the shaft 512, or may bepositioned on one or more other components of robotic gripping device500. In some examples, actuator encoder 524 may detect the rotation ofthe actuator with respect to motor 514, the base of the robotic grippingdevice, and/or one or more other components. As such, both relative andabsolute amounts of rotation of shaft 512 may be detected. Further,robotic gripping device 500 may include one or more digit encodersconfigured to detect the rotation and/or movement of one or more digits.

Actuator encoder 524 and/or the one or more digit encoders may be rotaryencoders. In some cases, the encoders may be mechanical, optical,magnetic, capacitive, or another type of encoder. In addition, theencoders may be absolute or may be incremental.

In some examples, robotic gripping device 500 may include one or morelinear encoders or potentiometers 526. Potentiometer 526 may beconfigured to detect a position of carriage 530 relative to the base ofthe robotic gripping device, and provide an output that may be receivedby a control system. The potentiometer may also detect a relativemovement of carriage 530. In some examples, potentiometer may detect theposition of carriage 530 in a first position in which spring 506 is atequilibrium, and detect the position of carriage 530 when the spring iscompressed or expanded. The potentiometer may determine the differencebetween the first and second position and provide this information tothe control system. Various types of linear encoders may be used, suchas optical, magnetic, capacitive, or inductive encoders.

Robotic gripping device 500 may also include a control system such ascontrol system 118 in FIG. 1, which may control one or more aspects ofrobotic gripping device 500. The control system may include one or moreprocessors, and may also include a non-transitory computer-readablememory, which may have stored thereon instructions executable by the oneor more processors to carry out one or more actions described herein.

In some examples, the control system may determine an amount of torqueacting on digit 502A by receiving information from potentiometer 526.The information provided by potentiometer 526 may include a distance theactuator has translated between a first position (equilibrium) and asecond position (non-equilibrium). The control system may then determinethe amount of torque based on the difference between the first andsecond positions and a characteristic of the spring, such as a springconstant. In some examples, the control system may also be configured toidentify an object for the robotic gripping device to grasp, andactivate one or more actuators to move one or more digits of the roboticgripping device in order to attempt to grasp the object.

IV. EXAMPLE SENSORIZED GRIPPERS

FIG. 6 is a table that includes types of gripper sensors for differentmanipulation classes, in accordance with example embodiments. Morespecifically, table 600 of FIG. 6 includes manipulation classes 602 withdifferent levels of complexity, and sensors 604 corresponding to each ofthe manipulation classes 602. As design motivation for a sensorizedgripper, a goal may be to enable data-rich information for acceleratingperformance in manipulation tasks. Within examples, the philosophy maybe to rapidly grow the sensor modalities and coverage on a gripper bydeploying hardware and software in stages. In particular, such a processmay involve starting with the lowest complexity sensor suites and movingtowards more technically challenging modalities. In addition theimplementation may be done “transparently,” to allow for completefallback to existing hardware and software without disruption of thestatus quo.

It should be noted that complexity of implementation is not necessarilycorrelated to the capabilities unlocked by specific sensing modalities.Roughly, as shown in table 600 of FIG. 6, in order of complexity,sources of information for manipulation can be bucketed into objectoccupancy, grasp shape, force closure, and slip detection.

Object occupancy, or detecting if an object is actually present in thegripper, may be considered the lowest complexity manipulation class.However, this manipulation class may be of particular importance whenworking with underactuated grippers. In some examples, sensors used todetect object occupancy may include one-dimensional (1D) time-of-flight(ToF) sensors, which may be capable of generating individualtime-of-flight distance and/or reflectance measurements; red green blue(RGB) and/or infrared (IR) cameras; and microphones.

A somewhat more complex manipulation class may involve determininginformation about grasp shape, which may also be used to inferinformation about grasp force and grasp quality. In some examples,sensors used to detect grasp shape may include radar; commercialoff-the-shelf (COTS) tactile digit pads; dynamic vision sensor (DVS)cameras; an inertial measurement unit (IMU) in each digit; andthree-dimensional (3D) ToF cameras.

More challenging still (and arguably unnecessary for pick and place) aresensing modalities that give direct information about the contact forcesduring grasping, first at a gross scale (force closure) and then at amuch finer scale (slip detection). In some examples, sensors used todetect force closure and/or slip detection may include custom tactiledigit pads, force digitnails, knuckle three degree-of-freedom (3DoF)sensors, strain gauges, and imaging-based tactile sensors.

Within examples, an existing underactuated gripper, such as describedherein with respect to FIGS. 4 and 5, may be augmented with selectedsensors from Table 6 to allow for immediate improvement on the detectionof grasp success and later benefits of rich sensor data for machinelearning algorithms.

FIG. 7 illustrates a sensing device for a robotic gripper, in accordancewith example embodiments. More specifically, printed circuit board (PCB)700 may be configured to fit into the palm of a robotic gripper, such asan underactuated gripper described in reference to FIGS. 4 and 5. ThePCB 700 may include sensors including a short-range time-of-flightsensor 710, a long-range time-of-flight sensor 720, and an infraredmicrocamera 730 arranged on a front side of PCB 700. The PCB 700 mayadditionally include an IMU 740 arranged on a rear side of PCB 700.

The short-range time-of-flight sensor 710 may include a narrow lightsource 712 and a light detector 714 to measure how long it takes laserlight projected by the light source 712 to bounce back after hitting anobject. This time may be used to accurately determine a range ordistance to a nearest object from the short-range time-of-flight sensor710 based on the known speed of light. As an example, the short-rangetime-of-flight sensor 710 may have a range of about 1 centimeter up to20 centimeters from the palm of the gripper. Additionally, theshort-range time-of-flight sensor 710 may have a relatively narrow fieldof view (e.g., 40 degrees) in order to detect objects within a cone ofsensing range extending out from the light detector 714. Based on itsrange, the short-range time-of-flight sensor 710 may be most effectivefor determining information about grasped objects.

In addition to a time-of-flight distance measurement, the short-rangetime-of-flight sensor 710 may additionally be configured to produce areflectance measurement indicative of total activity returned to thelight detector 714. More specifically, a return signal rate may begenerated based on the return signal count during the convergence timefor the range measurement. This reflectance value or intensity value maybe measured in a unit of mega-counts per second (mcps).

The long-range time-of-flight sensor 720 may also include a light source722 and a light detector 724. However, the long-range time-of-flightsensor 720 may be configured to detect objects further away from thepalm of the gripper than the short-range time-of-flight sensor 710. Forinstance, the long-range time-of-flight sensor 720 may be configured todetect objects within a range of 3 centimeters up to 200 centimetersfrom the palm of the gripper. The long-range time-of-flight sensor 720may also have a narrower field of view than the short-rangetime-of-flight sensor 710. For instance, the long-range time-of-flightsensor 720 may have a field of view of 25 degrees. The long-rangetime-of-flight sensor 720 may therefore detect a narrower cone of spacein the area between gripper digits than the short-range time-of-flightsensor 710. Like the short-range time-of-flight sensor 710, thelong-range time-of-flight sensor 720 may also be configured to generatea reflectance measurement in addition to a distance measurement. Basedon its range, the long-range time-of-flight sensor 720 may be mosteffective for detecting objects to approach with the gripper.

The infrared microcamera 730 may include an infrared illumination source732 configured to illuminate an area in front of the palm of the gripperwith infrared radiation. The infrared microcamera 730 may additionallyinclude an infrared sensitive receiver 734 for detecting at least aportion of the illuminated area. External illumination improves theperformance of infrared camera 730. And by relying on externalillumination, the camera 730 can detect objects in low-light areas oreven in total darkness. The camera 730 may provide relatively high-rate,low-resolution grayscale images. A grayscale image is one in which eachpixel represents only an amount or intensity of light (in this case,infrared light, or a combination of visible light and infrared light).As a specific example, the camera 730 may generate 60×60 grayscaleimages with a range of about 60 centimeters from the palm of thegripper. In some examples, the camera 730 may be configured to detectobjects within a range that extends past the range of the short-rangetime-of-flight sensor, but does not extend as far as the range of thelong-range time-of-flight sensor. Accordingly, the camera 730 may bemost effective for detecting objects near the tips of the digits of thegripper.

In some examples, a sensing device may additionally include an externalinfrared diffuser 736 to improve the performance of the infrared camera730. Infrared cameras are generally susceptible to “hot spots,”overexposed sections of the image corresponding to regions whereintensity from artificial infrared illuminators is greatest. Morespecifically, the infrared camera 730 may include an integratedilluminator 732 with a narrow beam which saturates central features thatreflect infrared light back into the camera 730. If the infrared camerais of a type designed for gesture recognition, the camera may beconfigured to underexpose regions that are not overexposed, which couldexacerbate the problem. Although the imager's intrinsic dynamic rangemay cover, e.g., a 9-bit measurement span for intensity, the returnedproduct may be significantly degraded as content is pushed to extremapixel value. This effect may reduce extractable information and preventrobust feature identification.

Hot spot artifacts created by irregular reflections may cause a“headlight in fog” condition where illumination only works to blind theimager's ability to capture the scene. Irregular reflections may beproduced by even regular objects when not aligned. This may underminerobot control functionality that depends on the image data, such as theability to detect objects in hand or to visually servo based on detectededges.

To address this potential problem, an infrared diffuser 736 may beplaced over the illumination source 732 or the entire infrared camera734. The diffuser 736 may be configured to diffuse (e.g., soften orspread out) concentrated infrared light from the infrared illuminationsource 732. The diffuser 736 may have various shapes and sizes, and maybe made of various materials. In some examples, the diffuser 736 may bea rectangular semi-transparent plastic component external to theinfrared camera 734. In other examples, the diffuser 736 may beintegrated inside the infrared camera 734 instead. In further examples,the diffuser 736 may include multiple layers, possibly with each layerbeing made of a different material. The infrared diffuser 736 maysignificantly improve performance of the infrared camera 734 indetecting edges and resolving other features in an area extending outfrom the palm of a robot gripper.

As shown in FIG. 7, the infrared camera 730 may be arranged between theshort-range time-of-flight sensor 710 and the long-range time-of-flightsensor 720 on PCB 700. By spacing out the time-of-flight sensors in thismanner, additional angular information may be obtained about the regionbetween the digits of the gripper. In further examples, thetime-of-flight sensors 710, 720 and the infrared camera 730 may bepositioned in different arrangements on PCB 700.

In other examples, different numbers and/or types of non-contact sensorsmay be used instead of those illustrated in FIG. 700. In particular,only a single time-of-flight sensor capable of generating both accurateshort-range and long-range distance data may be used instead of multipletime-of-flight sensors. Additionally, a different type of microcamerasuch as an RGB camera or an ultraviolet camera may be used instead of orin addition to an infrared camera in some embodiments. Other sensorscould also be integrated into the system, including for example an RGBcolor sensor.

The IMU 740 positioned on the back of the PCB 700 may be relatively easyto integrate into the hardware and therefore may be nearly free in termsof offering additional information about the gripper. In particular, theIMU 740 may be configured to detect vibration on contact, particularlyto confirm that an object is being touched by the gripper or for slipdetection. In other examples, IMU 740 may not be included on PCB 700.

In terms of power budget, in an example implementation, the averagecombined power draw of the short-range time-of-flight sensor 710, thelong-range time-of-flight sensor 720, the infrared camera 730 and theIMU 740 is less than 300 milliamps (mA). The peak combined power draw isapproximately one amp. More specifically, the short-range time-of-flightsensor may have a 25 mA peak (2 mA average), the long-rangetime-of-flight sensor may have a 19 mA average, the infrared camera mayhave a 860 mA peak, and the IMU may have a 4 mA average.

FIG. 8 illustrates a robotic gripper with a sensing device on the palm,in accordance with example embodiments. More specifically, a roboticgripper 800 includes the PCB 700 from FIG. 7 affixed to a palm 802 ofthe robotic gripper 800. The robotic gripper 800 additionally includesopposable digits 804, 806. The digits 804, 806 may be configured torotate towards and away from each other using respective rotationaljoints 808, 810. Such a motion may be initiated by a control system of arobot to cause the digits 804, 806 to grasp an object within a region850 between digits 804, 806. Further example embodiments include morethan two digits (e.g., three, four, or five digits) or only a singledigit (e.g., a hook gripper)

The non-contact sensors on PCB 700, including short-range time-of-flightsensor 710, long-range time-of-flight sensor 720, and infrared camera730, may therefore be oriented on palm 802 in order to generate sensordata in a direction between digits 804, 806. The sensor data may beindicative of objects with region 850, including objects near the palm802 and near the tips of digits 804, 806. The sensor data may also beindicative of objects that are beyond the tips of digits 804, 806. Eachnon-contact sensor on PCB 700 may generate sensor data for a differentspecific region in the general direction between digits 804, 806.

As shown in FIG. 8, PCB 700 may be arranged on palm 802 so thatshort-range time-of-flight sensor 710, long-range time-of-flight sensor720, and infrared camera 730 are aligned vertically. In otherembodiments, PCB 700 may be arranged on palm 802 so that short-rangetime-of-flight sensor 710, long-range time-of-flight sensor 720, andinfrared camera 730 are aligned horizontally, or in a different manner.

In some examples, PCB 700 may interface with a sensor board thatservices a force-torque sensor on a wrist that is coupled to the palm802 of the gripper 800. The wrist may be configured to move the palm 802and/or gripper 800 in one or more degrees of freedom. As an example, theforce-torque sensor may be configured to measure forces and torques onthe wrist in six degrees of freedom. Data from the force-torque sensormay be used to learn information about grasp quality or informationabout an object being grasped. In some examples, data from theforce-torque sensor may be fused with data from one or more non-contactsensors on the gripper.

Although not shown in FIG. 8, in some embodiments, digits 804, 806 maybe underactuated digits such as described in reference to FIGS. 4 and 5.Additionally, data from one or more encoders may be used to determinetorque, velocity, and/or position information about the digits 804, 806,such as described in reference to FIGS. 4 and 5. Such data may be fusedwith data from other sensors as well, including non-contact sensors. Infurther examples, additional camera data from a head-mounted camera maybe used as well.

An example embodiment of the present disclosure is a robotic deviceincluding a number of components. The components include a roboticgripping device, which includes a palm, a plurality of digits coupled tothe palm, a time-of-flight sensor arranged on the palm such that thetime-of-flight sensor is configured to generate time-of-flight distancedata in a direction between the plurality of digits, and an infraredcamera arranged on the palm such that the infrared camera is configuredto generate grayscale image data in the direction between the pluralityof digits. In addition, the robotic device includes a control system.The control system includes one or more processors, a non-transitorycomputer-readable memory, and program instructions stored on thenon-transitory computer-readable memory executable by the one or moreprocessors to carry out one or more actions. The actions may relate tocontrolling the robotic gripping device based on the time-of-flightdistance data and the grayscale image data.

In further examples, the robot may include a robot arm that has thegripping device as an end effector. In some examples, the robot arm maybe a standalone robot arm (e.g., a six degree-of-freedom robot arm) witha fixed base. In other examples, the robot arm may be separatelyattached to a robot body, which may be separately mobile within theenvironment. Within examples, the robot arm may or may not have aseparate control system.

FIG. 9 is a block diagram of a method, in accordance with exampleembodiments. The method 900 may be performed by a control systemoperating a sensorized robotic gripping device. The method 900 mayinvolve use of any of the robotic gripping devices described and/orillustrated herein, including gripper 800 of FIG. 8, but may be appliedto other robotic gripping devices having different arrangements and/ordifferent components than those explicitly identified herein. Further,method 900 may be carried out by one or more remote or local controlsystems of a robotic system, a robotic arm, or a different type ofrobotic device.

Those skilled in the art will understand that the block diagram of FIG.9 illustrates functionality and operation of certain implementations ofthe present disclosure. In this regard, each block of the block diagrammay represent a module, a segment, or a portion of program code, whichincludes one or more instructions executable by one or more processorsfor implementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer readable medium, forexample, such as a storage device including a disk or hard drive.

In addition, each block may represent circuitry that is wired to performthe specific logical functions in the process. Alternativeimplementations are included within the scope of the exampleimplementations of the present application in which functions may beexecuted out of order from that shown or discussed, includingsubstantially concurrent or in reverse order, depending on thefunctionality involved, as would be understood by those reasonablyskilled in the art.

At block 902, method 900 may include receiving time-of-flight distancedata from a time-of-flight sensor on the palm of the gripper. The datamay be indicative of a direction from the palm of the gripper toward anarea between a plurality of digits (e.g., two opposable digits) of thegripper. The time-of-flight distance data may include a distancemeasurement to a nearest object in the direction toward the area betweenthe digits. The distance measurement may be based on amount of time thatit takes a projected laser light to return to the time-of-flight sensor.In some examples, time-of-flight reflectance data may also be receivedfrom the time-of-flight sensor based on a measurement of total activityreturned during the distance measurement. In further examples,time-of-flight distance data may be received from multipletime-of-flight sensors on the palm, with each time-of-flight sensorpossibly having a different range of detection.

At block 904, method 900 may include receiving grayscale image data froman infrared camera on the palm of the gripper. The image data may alsobe indicative of a direction from the palm of the gripper toward an areabetween a plurality of digits of the gripper. The image data may begenerated by illuminating an area between the digits with infraredradiation with an infrared illumination source, and detecting theilluminated area with an infrared sensitive receiver. The grayscaleimage may include some number of pixels (e.g., 60×60), where each pixelrepresents an intensity of detected infrared and/or visible light.

At block 906, method 900 may further include controlling the gripperbased on the time-of-flight distance data and the grayscale image data.More specifically, data from the time-of-flight sensor and the infraredcamera may be fused together, possibly in addition to data from othersensors, in order to generate control instructions for the gripper. Thedata fusion may involve heuristics-based and/or machine learning models.The control instructions may relate to a first temporal phase beforegrasping an object (e.g., identifying an object to grasp, approachingthe object, determining an appropriate stopping distance, and/or visualservoing). The control instructions may also relate to a second temporalphase after an attempted grasp (e.g., confirming grasp success,evaluating quality of the grasp, and/or determining properties of theobject). The control instructions may also relate to a third temporalphase after a successful grasp (e.g., slip detection while moving agrasped object).

FIG. 10 illustrates bus timing for a sensing device, in accordance withexample embodiments. In some examples, software components related tooperating a sensor device (such as the one illustrated in FIG. 7)include embedded sensor drivers, an embedded device driver, realtimesensor drivers, an EtherCAT device driver, and a realtime controller.The basic flow of data may be asynchronous data acquisition on anembedded target over an inter-integrated circuit (I2C) and/or serialperipheral interface bus (SPI). This data is then packed and sent overEtherCat to the realtime system and handled by a synapse delegatedevice. The device is in turn handled by a realtime controller thatpublishes IPC messages for non-realtime consumption.

In reference to FIG. 10, table 1002 illustrates example bus timing topacketize data from two time-of-flight sensors and an infraredmicrocamera. The force-torque (F/T) analog-to-digital conversion (ADC)requires constant polling of the digital signal processor (DSP) to checkif new data is available. This thread is only interrupted by aninterrupt request (IRQ) set for when the first-in, first-out buffer isnear full for the SPI bus handling the microcamera. The I2C bus handlingthe time-of-flight sensors is given lower priority and therefore onlyruns at the end of the F/T ADC read.

Data over EtherCAT is then packetized to consist of two time-of-flights(each with distance and reflectance) with 900 bytes of the 60×60grayscale image. In one example, the system may be designed for 250Hertz (Hz), which roughly means a new camera image every >10 Hz.

V. EXAMPLE OBJECT-IN-HAND CLASSIFIERS

As previously noted, sensor data of multiple different modalities may beleveraged to ascertain whether or not an attempted grasp was successful.In particular, multimodel sensor data from one or more non-contactsensors on the palm of a gripper may be input into an object-in-handclassifier to determine the result of an attempted grasp. Using multipletypes of non-contact sensor data may be particularly beneficial forunderactuated grippers, for which determining grasp success or failurecan be more challenging.

To evaluate the performance of different types of non-contact sensors onthe gripper, data acquired for a variety of grasp types has beenconsidered. Results indicate that the short-range time-of-flight sensoris most useful for detecting objects within the length of the gripperdigits, while the long-range time-of-flight sensor is most useful fordetecting objects farther than the tip of the gripper digits. Theinfrared camera is particularly useful for determining occlusions, andfor classifying objects in the gripper. Results indicate that in someexamples, data from the time-of-flight sensors alone may not besufficient for determining grasp occupancy.

FIG. 11 illustrates fields of view for two time-of-flight sensors on arobotic gripper, in accordance with example embodiments. Morespecifically, gripper 1100 may be an underactuated gripper with a palm1102 that is coupled to each underactuated digit 1104, 1106 by arespective rotational joint. The palm may additionally include twotime-of-flight sensors, a short-range time-of-flight sensor and along-range time-of-flight sensor.

The short-range time-of-flight sensor may have a field-of-view definedby dashed lines 1108A and 1108B. The long-range time-of-flight sensormay a have a field-of-view defined by dashed lines 1110A and 1110B. Asshown in FIG. 11, the short-range sensor may have a wider field-of-viewthat does not extend as far from palm 1102. In some examples, the rangeof the short-range sensor may not extend past the tips of underactuateddigits 1104, 1106. The long-range sensor may have a narrowerfield-of-view that extends further from palm 1102. As an example, theshort-range sensor may have a field of view of 40 degrees and a rangethat extends 20 centimeters from palm 1102, while the long-range sensormay have a field of view of 25 degrees and a range that extends 200centimeters from palm 1102.

Including multiple time-of-flight sensors with different ranges mayallow for better sensing across a range of gripper operations, includingpre-grasp and post-grasp operations. In terms of determining graspfailure or success, experimental results indicate that the short-rangesensor has better fidelity than the long-range sensor. In some examples,both distance and reflectance values from a given time-of-flight sensormay be considered to evaluate grasp success. An object-in-handclassifier that takes as input sensor data of multiple modalities mayhave better accuracy.

FIG. 12 illustrates long-range time-of-flight sensor data, in accordancewith example embodiments. In particular, plot 1202 illustrates distancemeasurements in centimeters from the long-range sensor across aselection of samples. The larger dots in plot 1202 represent cases wherean object was in the gripper, while the smaller dots in plot 1202represent cases where the gripper was empty. As can be seen from plot1202, the cases where an object was in the gripper are not easilydistinguishable from cases where the gripper was empty when consideringonly distance data from the long-range time-of-flight sensor.

Additionally, plot 1204 illustrates reflectance measurements inmega-counts per second from the long-range sensor across the sameselection of samples. As can be seen from plot 1204, the cases where anobject was in the gripper are also not easily distinguishable from caseswhere the gripper was empty when considering only reflectance data fromthe long-range time-of-flight sensor.

Finally, plot 1206 illustrates both the distance and intensitymeasurements from the long-range time-of-flight sensor in a single plot.In particular, the samples are plotted as ordered pairs representing(intensity, distance). As can be seen from plot 1206, the combination ofdistance and intensity measurements from the long-range time-of-flightsensor also does not produce easily separable collections of exampleswhere the gripper is holding an object.

FIG. 13 illustrates short-range time-of-flight sensor data, inaccordance with example embodiments. In particular, plot 1302illustrates distance measurements in centimeters from the short-rangesensor across the same selection of samples as illustrated for thelong-range sensor in FIG. 12. The larger dots in plot 1302 againrepresent cases where an object was in the gripper, while the smallerdots in plot 1302 represent cases where the gripper was empty. As can beseen from plot 1302, the cases where an object was in the gripper areoften distinguishable from cases where the gripper was empty whenconsidering only distance data from the short-range time-of-flightsensor. However, there are cases where the distance data alone may notbe sufficient to distinguish successful grasps from failed grasps.

Additionally, plot 1304 illustrates reflectance measurements inmega-counts per second from the short-range sensor across the sameselection of samples. As can be seen from plot 1304, the cases where anobject was in the gripper are often distinguishable from cases where thegripper was empty when considering only reflectance data from theshort-range time-of-flight sensor. However, there are cases where thereflectance data alone may not be sufficient to distinguish successfulgrasps from failed grasps.

Finally, plot 1306 illustrates both the distance and intensitymeasurements from the short-range time-of-flight sensor in a singleplot. In particular, the samples are plotted as ordered pairsrepresenting (intensity, distance). As can be seen from plot 1306, thecombination of distance and intensity measurements from the short-rangetime-of-flight sensor produces separable collections of examples todistinguish when the gripper is holding an object.

The combination of both time-of-flight distance data and time-of-flightreflectance data may therefore be used as input data for anobject-in-hand classifier to accurately determine grasp failure orsuccess in many cases. However, in some examples, there may be still becorner cases that are difficult for a time-of-flight sensor todistinguish. As an example, a top-grasp on a cup may be difficult toresolve with only time-of-flight sensor data. Some such examples may bemore easily resolvable with camera data.

FIG. 14 illustrates camera image data, in accordance with exampleembodiments. More specifically, image 1402 shows an environmentcontaining an object for a robotic gripper to attempt to grasp. Image1404 shows an empty robotic gripper after a failed grasp attempt. Eachof image 1402 and 1404 may be collected from a sensor remote from thegripper (e.g., a head-mounted camera). In some examples, sensor datafrom such a sensor may not be sufficient to accurate determine graspsuccess or failure. Image 1406 is a microcamera image from a camera inthe palm of the gripper after the failed grasp attempt. Morespecifically, image 1406 is a 60×60 grayscale image collected from aninfrared microcamera in the palm of the gripper. In image 1406, the darkareas correspond with gripper digits, while the light areas are freespace.

Image 1412 again shows an environment containing an object for a roboticgripper to attempt to grasp. In this case, image 1414 shows an objectheld by the robotic gripper after a successful grasp attempt. Each ofimage 1412 and 1414 may be again collected from a sensor remote from thegripper. Image 1416 is another microcamera image from the camera in thepalm of the gripper after the successful grasp attempt. In image 1416,the dark areas correspond with gripper digits or the object, while thelight areas are free space.

In this case, a grasp failure is easily distinguishable from a graspsuccess using the images 1406 and 1416 from the infrared microcamera inthe palm of the gripper (e.g., by using an image subtraction heuristic).However, in some examples, there may also be cases which are difficultfor the camera to distinguish, but more easily resolvable using distanceand/or reflectance data from a time-of-flight sensor.

FIG. 15 is a block diagram of another method, in accordance with exampleembodiments. The method 1500 may be performed by a control systemoperating a sensorized robotic gripping device. The method 1500 mayinvolve use of any of the robotic gripping devices described and/orillustrated herein, including gripper 800 of FIG. 8, but may be appliedto other robotic gripping devices having different arrangements and/ordifferent components than those explicitly identified herein. Further,method 1500 may be carried out by one or more remote or local controlsystems of a robotic system, a robotic arm, or a different type ofrobotic device.

Those skilled in the art will understand that the block diagram of FIG.15 illustrates functionality and operation of certain implementations ofthe present disclosure. In this regard, each block of the block diagrammay represent a module, a segment, or a portion of program code, whichincludes one or more instructions executable by one or more processorsfor implementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer readable medium, forexample, such as a storage device including a disk or hard drive.

In addition, each block may represent circuitry that is wired to performthe specific logical functions in the process. Alternativeimplementations are included within the scope of the exampleimplementations of the present application in which functions may beexecuted out of order from that shown or discussed, includingsubstantially concurrent or in reverse order, depending on thefunctionality involved, as would be understood by those reasonablyskilled in the art.

At block 1502, the method 1500 may include controlling a roboticgripping device to cause a plurality of digits of the robotic grippingdevice to move towards each other in an attempt to grasp an object. Morespecifically, a control system of a robot may identify an object in theenvironment for the gripper to pick up based on sensor data from one ormore sensors remote from the gripper and/or on the gripper. The controlsystem may then move the gripper to a position where the object isbetween the digits (e.g., two opposable digits) before actuating thedigits to attempt to grasp the object. In some examples, imperfectperception information, unexpected object properties, unexpectedenvironmental conditions, and/or other factors may cause a grasp attemptto fail.

Causing the digits to move towards each other in an attempt to grasp theobject may involve rotational motion of the digits, translational motionof the digits, or a combination of rotational and translational motionof the digits. In some examples, one or more of the digits may beunderactuated digits, in which case it may not be possible to determinefull positioning information for all of the joints of the digits duringthe grasp attempt. Non-contact sensors positioned in the gripper may beparticularly useful for evaluating grasp success when the gripperincludes underactuated digits.

At block 1504, the method 1500 may include receiving, from at least onenon-contact sensor on the robotic gripping device, first sensor dataindicative of a region between the plurality of digits of the roboticgripping device. More specifically, a first non-contact sensor may bepositioned on the palm of the gripper and oriented to detect objectsthat are located between the digits. As an example, the firstnon-contact sensor may be a one-dimensional time-of-flight sensorconfigured to generate a time-of-flight distance measurement indicativeof distance to a nearest object in the direction between the digits ofthe gripper.

At block 1506, the method 1500 may include receiving, from the at leastone non-contact sensor on the robotic gripping device, second sensordata indicative of the region between the plurality of digits of therobotic gripping device. The second sensor data may be based on adifferent sensing modality than the first sensor data. A sensingmodality refers to a form of sensory perception that produces aparticular form of sensor data. By receiving sensor data with multipledifferent non-contact sensing modalities, a more accurate evaluation ofgrasp success may be obtained.

In some examples, the same sensor may generate both the first sensordata and the second sensor data. For instance, a time-of-flight sensormay be configured to generate a distance measurement as well as aseparate reflectance measurement indicative of total activity returnedduring the distance measurement. Sensor data of both modalities(one-dimensional time-of-flight distance data and reflectance data) maybe used to evaluate grasp success.

In further examples, a first sensor may generate the first sensor dataand a second sensor may generate the second sensor data. For instance,the first sensor may be a time-of-flight sensor configured to generatetime-of-flight sensor data and the second sensor may be an infraredmicrocamera configured to generate grayscale image data. Atime-of-flight sensor and an infrared camera may be particularlyeffective for resolving corner cases that may be missed by one or theother of the two sensors.

In yet further examples, sensor data of more than two modalities may bereceived and used as input into an object-in-hand classifier. In someexamples, time-of-flight distance data, time-of-flight reflectance data,and infrared image data may each be received and used to evaluate graspsuccess. In further examples, multiple time-of-flight sensors (e.g., ashort-range time-of-flight sensor and a long-range time-of-flightsensor) may each provide distance and/or reflectance data for anobject-in-hand classifier.

In additional examples, other types of non-contact sensor data may alsobe used as input data to an object-in-hand classifier as well orinstead. Further example embodiments may include the use of ultrasonicsensing that measures distance using sound waves, electromagneticsensing, radar sensing, and/or structured light sensing.

At block 1508, the method 1500 may include determining, using anobject-in-hand classifier that takes as input the first sensor data andthe second sensor data, a result of the attempt to grasp the object. Anobject-in-hand classifier is an algorithm or function that maps inputtedsensor data to categories corresponding to different grasp states. Insome examples, the output of the object-in-hand classifier is a binaryoutput indicating whether or not an attempted grasp was successful(e.g., whether or not the gripper is currently holding the targetedobject). In further examples, the output of the object-in-handclassifier may indicate grasp quality (e.g., what portions of the digitsare in contact with object to determine quality of grip), intrinsicproperties of the object, and/or other information. Within examples, theobject-in-hand classifier may rely on a machine learning model, aheuristics-based approach, or a combination of both.

A machine learning model may allow for the prediction of grasp successor failure based on sensor data without explicit programming for aparticular grasp scenario. In some examples, a supervised learning modelmay be used that has been trained based on correctly identifiedobservations. In further examples, a model used by a robot for aparticular gripper may be trained using past grasp attempts by the robotwith the particular gripper. In other examples, a model trained withdata from a gripper on one robot may then be used by a different robotwith another similar gripper. Notably a machine learning model maytransfer better than a heuristics-based approach when applied to a robotwith different digits, a robot having digits with different levels ofuse or wear, and/or a robot with a different operating environment. Insome examples, a remote computing device (e.g., a cloud-based server)may compile information from multiple robots using similar grippers totrain a model that is then used to determine grasp outcomes for the samerobots and/or other robots. In further examples, simulated graspattempts on models of different objects may be performed in software,and also used to train a machine learning model.

In some examples, a support vector machine (SVM) is a supervisedlearning model that may be used for the object-in-hand classifier. AnSVM is non-probabilistic binary linear classifier, making it aparticularly appropriate model to use when the only desired output iswhether or not a grasp attempt failed (e.g., the gripper is holding theobject or the gripper is not holding the object). Given a set oftraining examples, each marked as belonging to one or the other of twocategories, an SVM training algorithm may build a model that assigns newexamples to one category or the other. More specifically, a trainingexample in this case may include at least two different modalities ofsensor data from at least one non-contact sensor on the gripper, and thetwo categories may correspond to grasp success and grasp failure.

In some examples, an SVM may take as input a time-of-flight distancemeasurement and a time-of-flight reflectance measurement from a singletime-of-flight sensor (e.g., a short-range time-of-flight sensor). Infurther examples, an SVM may take as input a time-of-flight distancemeasurement, a time-of-flight reflectance measurement, and an infraredimage from an infrared microcamera. In further examples, an SVM may takeas input sensor data from a force-torque sensor on the wrist, positionand/or torque data from one or more encoders associated withunderactuated digits, sensor data from an IMU sensor on the palm, and/orother types of sensor data in addition to multimodal non-contact sensordata.

In further examples, other types of machine learning models may be used.For instance, a neural network may be trained that takes as input any ofthe types of sensor data described for an SVM. In some examples, aconvolutional neural network (CNN) may be used as the object-in-handclassifier. A CNN typically consists of an input and an output layer, aswell as multiple hidden layers. The hidden layers of a CNN typicallyinclude convolutional layers, pooling layers, fully connected layersand/or normalization layers. A CNN uses less pre-processing than someother image classification algorithms and learns filters that may needto be manually engineered with other algorithms. A CNN therefore has theadvantage of independence from prior knowledge and human effort infeature design. In yet other examples, a heuristics-based approach withhard-coded buckets for different combinations of sensor data may be usedas well or instead.

In additional examples, method 1500 may involve further operations basedon the determined result of the attempt to grasp the object. Forinstance, if the grasp is determined to be unsuccessful, the gripper maybe controlled to make another grasp attempt. If the grasp is determinedto be successful, the gripper may be controlled to move the object to adropoff location. In some examples, the control system may receiveadditional sensor data and subsequently determine whether or not theobject-in-hand classifier correctly resolved a particular scenario. Thisinformation may be used to refine the object-in-hand classifier (e.g.,train a machine learning model).

In further examples, the object-in-hand classifier may also be used as adropped object detector to determine when a successfully grasped objectis no longer being held by the gripper (e.g., because the robot hasdropped the object or the object has been taken from the robot). Inadditional examples, the object-in-hand classifier may also be used toconfirm that an object has been received in the gripper from a user(e.g., taken from the user's hand). In further examples, theobject-in-hand classifier may periodically be used to confirm that anobject is still being held by the gripper (e.g., every five secondswhile moving a grasped object). If the object-in-hand classifierindicates that the object is unexpectedly no longer being held by thegripper, a control system may cause the robot to perform one or morecorrective actions (e.g., to locate and pick up a dropped object).

FIG. 16 is a block diagram illustrating application of an object-in-handclassifier, in accordance with example embodiments. In particular,distance data 1602 from a time-of-flight sensor may be captured by atime-of-flight sensor and used as input data to an object-in-handclassifier 1608. The distance data 1602 may be a single distancemeasurement (e.g., measured in centimeters from a time-of-flight sensoron a palm of a gripper).

Additionally, reflectance data 1604 may also be received from the sametime-of-flight sensor and used as additional input data to theobject-in-hand classifier 1608. The reflectance data 1604 may be asingle reflectance measurement indicating a return signal rate duringthe distance measurement (e.g., a return signal count divided by aconvergence time, measured in mega-counts per second).

Additionally, image data 1606 may be received from an infrared cameraand used as additional input data to the object-in-hand classifier 1608.The image data 1606 may be a single image captured by the infraredcamera (e.g., a grayscale image with 60×60 pixels). The image data 1606may be captured at the same time as the time-of-flight sensor data, or adifferent time.

The object-in-hand classifier 1608 may provide a binary grasp successoutput 1610 based on the distance data 1602, the reflectance data 1604,and the image data 1606. In some examples, the object-in-hand classifier1608 may be a machine learning model. More specifically, theobject-in-hand classifier 1608 may be a supervised learning model suchas an SVM. In other examples, the object-in-hand classifier 1608 may bea different type of machine learning model like a neural network (e.g.,a convolutional neural network or another deep neural networkstructure). In further examples, the object-in-hand classifier 1608 maybe a heuristics-based model with a hardcoded function to determine thegrasp success output 1610 based on the input data. Specific exampleembodiments of an object-in-hand classifier include heuristicthresholding, a linear SVM, a radial basis SVM, a wide fully-connectedneural network, a deep fully-connected neural network, and a hybrid CNNwith wide fully-connected neural network.

FIG. 17 illustrates a linear kernel support vector machine (SVM), inaccordance with example embodiments. More specifically, a trained SVMhas an associated separator 1702 used to distinguish points as eithersuccessful or unsuccessful grasps based only on intensity (reflectance)and distance measurements from a short-range time-of-flight sensor. Theseparator 1702 is a hyperplane, which in the case of a linear kernel SVMis a line in two-dimensional space. The darker points representtime-of-flight distance and intensity measurements for successful graspsand the lighter points represent time-of-flight distance and intensitymeasurements for unsuccessful grasps. The circled points represent thesupport vectors which define the position of the separator 1702. In thiscase, the margin of the SVM is the distance between dashed line 1704 andthe separator 1702. The separator 1702 may be used to distinguish futuregrasp attempts as either successful or unsuccessful based ontime-of-flight distance and intensity measurements.

On static data, in an example system as illustrated in FIG. 17, it hasbeen possible to tune the parameters for an SVM using just the intensity(reflectance) and distance data from a short-range time-of-flightsensors to produce high-accuracy detection of 98%. Similar performancehas also been achieved using an infrared camera and an image subtractionheuristic. By using a combination of the time-of-flight sensor data andthe infrared camera data (and possibly other data such as gripper jointpositions), an object-in-hand classifier may be trained that has a highlevel of accuracy with high robustness.

VI. OTHER EXAMPLE APPLICATIONS

Non-contact sensors in a robotic gripper may be used for a number ofapplications, including multiple phases of a gripping process. Before agrasp can be attempted, the sensor data may be used to help generate anapproach trajectory for the gripper. In some examples, resolution issuesand occlusions may make it difficult for a robot to rely only on sensorsremote from the gripper to determine an approach trajectory.Accordingly, data from one or more non-contact sensors on the grippersuch as an infrared camera and one or more time-of-flight sensors may befused (possibly with other sensor data such as data from a head-mountedcamera) to determine an approach trajectory and/or stopping points forthe gripper.

In some examples, the sensor data may be used to help ensure that therobot doesn't knock over an object during approach by stopping thegripper at appropriate distance for grasping, rather than moving tocontact. In some examples, one or more thresholds may be used todetermine when to stop the gripper based on non-contact sensor data. Infurther examples, the thresholds may correspond to specific sensortypes, object types, and/or grasp types. In some cases, a certainscenario may be easier for one sensor type to resolve than another. Forinstance, when doing a top grasp on an edge of a plastic cup, sensordata from an infrared camera may be more useful for determining when tostop the gripper than sensor data from a time-of-flight sensor. Aheuristics-based or machine learning approach may be used to determinean appropriate stopping distance for the gripper using multimodal sensordata.

In further examples, non-contact sensing may also be used to control avisual servoing process to center the gripper over an object. Morespecifically, a closed-loop control system may involve using visioninformation to sequentially adjust the gripper position. For instance,certain features (e.g., edges) may be extracted from infrared imagesthat are captured at multiple points as the gripper position isadjusted. Based on how much the features move between successive images,the gripper position may be adjusted. In some examples, a machinelearning model may take as input sensor data of multiple differentmodalities (e.g., infrared image data and time-of-flight depth data) tocontrol a visual servoing process. In further examples, multimodalsensor data may be used as part of a position-based servoing process ora velocity-based servoing process.

In additional examples, a robotic control system may use close-upnon-contact sensor data to perform precise grasps on oddly shaped orsmall objects for which accurate bounding box information is unavailable(e.g., forks, pens, or post-it notes). In further examples, close-upnon-contact sensor data may also be used to select a grasp point tograsp on a large object that may have local structure (e.g., a tissuebox or stuffed animal). In additional examples, close-up non-contactsensor data may also be used before grasping a container like a bowl orcup to determine whether or not the container contains liquid or someother substance. A control system may then determine whether or not tograsp the container and/or how to grasp the container based on thesensor data. In further examples, close-up non-contact sensor data mayadditionally be used for classification of objects in clutter.

In some systems, sensorizing a robotic gripper with one or morenon-contact sensors may allow for the removal of one or more previouslyrequired fiducial markers within the environment of a robot.

In further examples, sensor data from one or more non-contact sensors ona gripper may also be used for slip detection after grasping an object.In particular, motion of the robot's digits may be differentiated frommotion of a grasped object to distinguish slipping from normal grippermotion. In some examples, slip detection may involve determining avelocity field from an image instead of using still frames (e.g., everypixel within the image may be assigned a separate velocity vector). Byconsidering what points are moving within an image, unexpected orunintended object movement within the digits can be identified. In suchcases, robot behavior may be adjusted to compensate (e.g., by increasingtorque to try to prevent the object from slipping). A slip detector mayinvolve a heuristics-based or machine learning approach. In someexamples, a heuristics-based approach may only be used in situationswhere available computing power is not sufficient to resolve a possibleobject slipping situation in an available amount of time with a machinelearning model. In further examples, a slip detector may take as inputsensor data of multiple different modalities from at least onenon-contact sensor on the gripper.

Other robotic applications may also benefit from having one or morenon-contact sensors on the gripper. Many such applications may benefitfrom sensors that generate sensor data of multiple different modalities.Depending on the intended uses for a particular robot, differentcombinations of non-contact sensors may be considered.

VII. CONCLUSION

It should be understood that arrangements described herein are forpurposes of example only. As such, those skilled in the art willappreciate that other arrangements and other elements (e.g. machines,interfaces, operations, orders, and groupings of operations, etc.) canbe used instead, and some elements may be omitted altogether accordingto the desired results. Further, many of the elements that are describedare functional entities that may be implemented as discrete ordistributed components or in conjunction with other components, in anysuitable combination and location, or other structural elementsdescribed as independent structures may be combined.

While various aspects and implementations have been disclosed herein,other aspects and implementations will be apparent to those skilled inthe art. The various aspects and implementations disclosed herein arefor purposes of illustration and are not intended to be limiting, withthe true scope being indicated by the following claims, along with thefull scope of equivalents to which such claims are entitled. It is alsoto be understood that the terminology used herein is for the purpose ofdescribing particular implementations only, and is not intended to belimiting.

1. A method comprising: controlling a robotic gripping device to cause aplurality of digits of the robotic gripping device to move towards eachother in an attempt to grasp an object; receiving, from a firstnon-contact sensor, first sensor data indicative of a region between theplurality of digits of the robotic gripping device, wherein the firstsensor data is indicative of the region after the attempt to grasp theobject; receiving, from a second non-contact sensor, second sensor dataindicative of the region between the plurality of digits of the roboticgripping device, wherein the second sensor data is based on a differentsensing modality than the first sensor data, wherein the second sensordata is indicative of the region after the attempt to grasp the object;and determining, using an object-in-hand classifier that takes as inputthe first sensor data and the second sensor data, whether the roboticgripping device is currently holding the object after the attempt tograsp the object.
 2. The method of claim 1, wherein the object-in-handclassifier is a machine learning model trained based on past graspattempts by the robotic gripping device.
 3. The method of claim 1,wherein the object-in-hand classifier is a machine learning modeltrained based on past grasp attempts by a similar robotic grippingdevice.
 4. The method of claim 1, wherein the object-in-hand classifieris a machine learning model trained based on simulated grasping events.5. The method of claim 1, wherein the object-in-hand classifiercomprises a convolutional neural network (CNN).
 6. The method of claim1, wherein the first non-contact sensor comprises a time-of-flightsensor, wherein the first sensor data comprises time-of-flight distancedata from the time-of-flight sensor.
 7. The method of claim 6, whereinthe object-in-hand classifier is a linear kernel state vector machine(SVM) that takes as input the time-of-flight distance data.
 8. Themethod of claim 1, wherein the first non-contact sensor is an infraredcamera, wherein the first sensor data comprises grayscale image data,wherein the second non-contact sensor is a time-of-flight sensor, andwherein the second sensor data comprises time-of-flight distance data.9. The method of claim 8, wherein the object-in-hand classifier takes asfurther input third sensor data, wherein the third sensor data comprisesreflectance data from the time-of-flight sensor.
 10. The method of claim8, wherein the object-in-hand classifier is an SVM that takes as input asingle image from the infrared camera, a single distance measurementfrom the time-of-flight sensor, and a single reflectance measurementfrom the time-of-flight sensor.
 11. The method of claim 1, wherein thefirst non-contact sensor comprises a time-of-flight sensor, wherein thefirst sensor data comprises time-of-flight distance data from thetime-of-flight sensor, and wherein the method further comprisingreceiving, from an additional time-of-flight sensor on the roboticgripping device, additional sensor data indicative of the region betweenthe plurality of digits of the robotic gripping device, wherein theobject-in-hand classifier takes as further input the additional sensordata.
 12. The method of claim 11, wherein the time-of-flight sensor is ashort-range time-of-flight sensor configured to measure distance withina first range, wherein the additional time-of-flight sensor is along-range time-of-flight sensor configured to measure distance within asecond range, wherein the second range extends further from the roboticgripping device than the first range, and wherein each of theshort-range time-of-flight sensor and the long-range time-of-flightsensor are configured to generate a separate reflectance measurement.13. The method of claim 1, further comprising controlling the roboticgripping device to attempt to grasp the object a second time when theattempt to grasp the object results in a grasp failure.
 14. The methodof claim 1, wherein the plurality of digits of the robotic grippingcomprise a plurality of underactuated digits, wherein each underactuateddigit has less control inputs than degrees of freedom.
 15. The method ofclaim 1, wherein the first non-contact sensor is a one-dimensional (1D)time-of-flight sensor configured to generate a time-of-flight distancemeasurement indicative of distance to a nearest object in a directionextending between the plurality of digits of the robotic grippingdevice.
 16. A robot comprising: a robotic gripping device, comprising aplurality of digits; a first non-contact sensor; a second non-contactsensor; and a control system configured to: control the robotic grippingdevice to cause the plurality of digits of the robotic gripping deviceto move towards each other in an attempt to grasp an object; receive,from the first non-contact sensor, first sensor data indicative of aregion between the plurality of digits of the robotic gripping device,wherein the first sensor data is indicative of the region after theattempt to grasp the object; receive, from the second non-contactsensor, second sensor data indicative of the region between theplurality of digits of the robotic gripping device, wherein the secondsensor data is based on a different sensing modality than the firstsensor data, wherein the second sensor data is indicative of the regionafter the attempt to grasp the object; and determine, using anobject-in-hand classifier that takes as input the first sensor data andthe second sensor data, whether the robotic gripping device is currentlyholding the object after the attempt to grasp the object.
 17. The robotof claim 16, wherein the plurality of digits comprise two underactuateddigits, each underactuated digit comprising: a deformable grippingsurface; and a plurality of members coupled together end-to-end by oneor more unactuated joints, wherein the plurality of members areconfigured to cause the deformable gripping surface to conform to ashape of the object when the object is grasped between the twounderactuated digits.
 18. The robot of claim 17, wherein the controlsystem is further configured to determine, based on the first sensordata and the second sensor data, a grasp quality indicative of a qualityof grip on the object by the two underactuated digits.
 19. The robot ofclaim 16, wherein the first non-contact sensor comprises an RGB cameraand the second non-contact sensor comprises a time-of-flight sensor,wherein the object-in-hand classifier used by the control system takesas input a color image from the RGB camera, a distance measurement fromthe time-of-flight sensor, and a reflectance measurement from thetime-of-flight sensor.
 20. A non-transitory computer readable mediumhaving stored therein instructions executable by one or more processorsto cause the one or more processors to perform functions comprising:controlling a robotic gripping device to cause a plurality of digits ofthe robotic gripping device to move towards each other in an attempt tograsp an object; receiving, from a first non-contact sensor, firstsensor data indicative of a region between the plurality of digits ofthe robotic gripping device, wherein the first sensor data is indicativeof the region after the attempt to grasp the object; receiving, from asecond non-contact sensor, second sensor data indicative of the regionbetween the plurality of digits of the robotic gripping device, whereinthe second sensor data is based on a different sensing modality than thefirst sensor data, wherein the second sensor data is indicative of theregion after the attempt to grasp the object; and determining, using anobject-in-hand classifier that takes as input the first sensor data andthe second sensor data, whether the robotic gripping device is currentlyholding the object after the attempt to grasp the object.